<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      const properties = [
        '中华园,北京市,公寓',
        '华景苑,上海市,别墅',
        '新城市广场,深圳市,公寓',
        '雅居乐花园,广州市,别墅',
        '恒大城,广州市,公寓',
        '太阳花园,北京市,别墅',
      ]

      const getHouseStyle = (arr) => {
        // 创建一个空对象用于接受数据
        const res = {}

        //将数组中的每一项字符串先切割为数组形式
        const data = arr.map((item) => item.split(','))

        //遍历每一项数据，因为观察数据可以发现，数组项的第一个值为房产名称，最后一项为房产类型，中间一项不需要所以跳过
        data.forEach(([houseName, , houseStyle]) => {
          //判断对象中是否已经存在属性名
          if (res[houseStyle]) {
            //如果对象中已经存在这个属性名，说明已经准备好了数组准备接受数据，所以直接将房产名称推入数组就可以
            res[houseStyle].push(houseName)
          } else {
            //如果对象中没有对应的房产类型的属性名，说明是第一次添加，所以需要先新增一个属性，并且赋值一个空数组，然后再推入房产名称即可
            res[houseStyle] = []
            res[houseStyle].push(houseName)
          }
        })

        console.log(res)
      }

      getHouseStyle(properties)
    </script>
  </body>
</html>
